From 61de24aa9a155ab54df01662a43a6d93fc1c632f Mon Sep 17 00:00:00 2001 From: Matthias Clasen Date: Fri, 27 Apr 2007 23:31:58 +0000 Subject: [PATCH] Factor out window movement functions. (#63820, Tilman Sauerbeck) 2007-04-27 Matthias Clasen * gdk/x11/gdkgeometry-x11.c: Factor out window movement functions. (#63820, Tilman Sauerbeck) svn path=/trunk/; revision=17665 --- ChangeLog | 5 +++ gdk/x11/gdkgeometry-x11.c | 65 ++++++++++++++++++++------------------- 2 files changed, 39 insertions(+), 31 deletions(-) diff --git a/ChangeLog b/ChangeLog index b13392dce8..eeca7b0cca 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2007-04-27 Matthias Clasen + + * gdk/x11/gdkgeometry-x11.c: Factor out window movement + functions. (#63820, Tilman Sauerbeck) + 2007-04-27 Matthias Clasen * gdk/x11/gdkgeometry-x11.c: Factor out translate_pos(). diff --git a/gdk/x11/gdkgeometry-x11.c b/gdk/x11/gdkgeometry-x11.c index ce52859319..acbc46345c 100644 --- a/gdk/x11/gdkgeometry-x11.c +++ b/gdk/x11/gdkgeometry-x11.c @@ -313,6 +313,30 @@ translate_pos (GdkWindowParentPos *dest, GdkWindowParentPos *src, dest->clip_rect = pos_info->clip_rect; } +static void +move (GdkWindow *window, GdkXPositionInfo *pos) +{ + XMoveWindow (GDK_WINDOW_XDISPLAY (window), + GDK_WINDOW_XID (window), pos->x, pos->y); +} + +static void +move_relative (GdkWindow *window, GdkRectangle *rect, + gint dx, gint dy) +{ + XMoveWindow (GDK_WINDOW_XDISPLAY (window), + GDK_WINDOW_XID (window), + rect->x + dx, rect->y + dy); +} + +static void +move_resize (GdkWindow *window, GdkRectangle *pos) +{ + XMoveResizeWindow (GDK_WINDOW_XDISPLAY (window), + GDK_WINDOW_XID (window), + pos->x, pos->y, pos->width, pos->height); +} + static void gdk_window_guffaw_scroll (GdkWindow *window, gint dx, @@ -343,9 +367,7 @@ gdk_window_guffaw_scroll (GdkWindow *window, compute_intermediate_position (&impl->position_info, &new_info, d_xoffset, d_yoffset, &new_position); - XMoveResizeWindow (GDK_WINDOW_XDISPLAY (window), - GDK_WINDOW_XID (window), - new_position.x, new_position.y, new_position.width, new_position.height); + move_resize (window, &new_position); for (l = obj->children; l; l = l->next) { @@ -358,17 +380,12 @@ gdk_window_guffaw_scroll (GdkWindow *window, gdk_window_premove (child, &parent_pos); } - XMoveWindow (GDK_WINDOW_XDISPLAY (window), - GDK_WINDOW_XID (window), - new_position.x - d_xoffset, new_position.y - d_yoffset); + move_relative (window, &new_position, -d_xoffset, -d_yoffset); if (dx < 0 || dy < 0) gdk_window_queue_translation (window, NULL, MIN (dx, 0), MIN (dy, 0)); - XMoveResizeWindow (GDK_WINDOW_XDISPLAY (window), - GDK_WINDOW_XID (window), - impl->position_info.x, impl->position_info.y, - impl->position_info.width, impl->position_info.height); + move_resize (window, (GdkRectangle *) &impl->position_info); if (impl->position_info.no_bg) _gdk_x11_window_tmp_reset_bg (window, FALSE); @@ -672,22 +689,16 @@ _gdk_window_move_resize_child (GdkWindow *window, compute_intermediate_position (&impl->position_info, &new_info, d_xoffset, d_yoffset, &new_position); - XMoveResizeWindow (GDK_WINDOW_XDISPLAY (window), - GDK_WINDOW_XID (window), - new_position.x, new_position.y, new_position.width, new_position.height); + move_resize (window, &new_position); g_list_foreach (obj->children, (GFunc) gdk_window_premove, &parent_pos); - XMoveWindow (GDK_WINDOW_XDISPLAY (window), - GDK_WINDOW_XID (window), - new_position.x + dx, new_position.y + dy); + move_relative (window, &new_position, dx, dy); if (d_xoffset > 0 || d_yoffset > 0) gdk_window_queue_translation (window, NULL, MAX (d_xoffset, 0), MAX (d_yoffset, 0)); - XMoveResizeWindow (GDK_WINDOW_XDISPLAY (window), - GDK_WINDOW_XID (window), - new_info.x, new_info.y, new_info.width, new_info.height); + move_resize (window, (GdkRectangle *) &new_info); reset_backgrounds (window); @@ -707,13 +718,9 @@ _gdk_window_move_resize_child (GdkWindow *window, g_list_foreach (obj->children, (GFunc) gdk_window_premove, &parent_pos); if (is_resize) - XMoveResizeWindow (GDK_WINDOW_XDISPLAY (window), - GDK_WINDOW_XID (window), - new_info.x, new_info.y, new_info.width, new_info.height); + move_resize (window, (GdkRectangle *) &new_info); else - XMoveWindow (GDK_WINDOW_XDISPLAY (window), - GDK_WINDOW_XID (window), - new_info.x, new_info.y); + move (window, &new_info); g_list_foreach (obj->children, (GFunc) gdk_window_postmove, &parent_pos); @@ -919,9 +926,7 @@ gdk_window_premove (GdkWindow *window, compute_intermediate_position (&impl->position_info, &new_info, d_xoffset, d_yoffset, &new_position); - XMoveResizeWindow (GDK_DRAWABLE_XDISPLAY (window), - GDK_DRAWABLE_XID (window), - new_position.x, new_position.y, new_position.width, new_position.height); + move_resize (window, &new_position); } g_list_foreach (obj->children, (GFunc) gdk_window_premove, &this_pos); @@ -952,9 +957,7 @@ gdk_window_postmove (GdkWindow *window, if (d_xoffset > 0 || d_yoffset > 0) gdk_window_queue_translation (window, NULL, MAX (d_xoffset, 0), MAX (d_yoffset, 0)); - XMoveResizeWindow (GDK_DRAWABLE_XDISPLAY (window), - GDK_DRAWABLE_XID (window), - new_info.x, new_info.y, new_info.width, new_info.height); + move_resize (window, (GdkRectangle *) &new_info); } map_if_needed (window, &new_info); -- 2.30.2